package cn.tedu.demo;

import org.springframework.context.annotation.*;

//这个注解的意思是表示当前类是一个Spring框架的配置类
//这个类中可以设置保存到Spring容器的对象的代码
@Configuration
//@ComponentScan英文含义组件扫描
//()里指定扫描的包的位置,这个位置中的所有类和其子包中的所有类都会被扫描
@ComponentScan("cn.tedu.demo")
public class Config {

    //@Bean表示下面的方法的返回值会保存到Spring容器
    @Bean
    //实现惰性初始化
    @Lazy
    //这个方法中返回值对象会使用方法名作为id保存到Spring容器
    public AirPlane plane1(){
        System.out.println("plane1方法运行");
        AirPlane p1=new AirPlane();
        p1.setName("敌机1号");
        p1.setWidth(50);
        return p1;
    }
    //再向Spring容器保存一个AirPlane对象
    //id是bossPlane  name属性是"Boss",width是200
    //并在main方法中获得这个对象输出信息即可
    @Bean
    //@Scope("prototype")注解表示当获得下面保存到Spring容器对象时
    //每次获得都实例化一个新的对象,和之前获得的对象无任何关系
    @Scope("prototype")
    public AirPlane bossPlane(){
        AirPlane boss=new AirPlane();
        boss.setName("Boss");
        boss.setWidth(200);
        return boss;
    }







}
